home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)te.d64 / bay street.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  8KB  |  279 lines

  1. 5 REM *********************************       *         "BAY STREET"          *
  2. 10 REM*             FROM              *       *        ROGER D. BURGE         *
  3. 15 REM*BASED ON THE COMMODORE PET 2001*       *        PROGRAM "STOCK"        *
  4. 20 REM*    REVISED AND UPGRADED BY    *       *        ROGER D. BURGE         *
  5. 25 REM* CONVERTED TO THE COMMODORE 64 *       *              BY               *
  6. 30 REM*        ROGER D. BURGE         *       *             #2667             *
  7. 35 REM*           JULY,1984           *       *              FOR              *
  8. 40 REM* TORONTO PET USERS GROUP INC.  *       *        TORONTO, CANADA        *
  9. 45 REM*        CLASSIFICATION:        *       *   RECREATIONAL,EDUCATIONAL    *
  10. 50 REM*********************************
  11. 55 POKE53280,3:POKE53281,.
  12. 60 K=RND(-TI):X$="[158]"
  13. 65 DIMSN$(6),SA(6),PN$(6),PS(6,6),PA(6),DN(3),C$(6),C(6)
  14. 70 GOSUB150
  15. 75 FORR=1TONR
  16. 80 D1=INT(6*RND(1))+1
  17. 85 D2=INT(3*RND(1))+1
  18. 90 D3=INT(3*RND(1))+1:D3=5*2^(D3-1)
  19. 95 PRINTX$"                       "
  20. 100 PRINTX$SN$(D1);DN$(D2);D3
  21. 105 OND2GOSUB695,730,765
  22. 110 GOSUB1075:NEXT
  23. 115 IX=21:ML=1:PRINTX$"ONE MORE ROUND Y/N ?  [157][157]";:GOSUB1150
  24. 120 IFWK$<>"N"ANDWK$<>"Y"THEN115
  25. 125 IFWK$="N"THENGOSUB790:GOTO1220
  26. 130 FORI=1TON2:GOSUB475:NEXT
  27. 135 IFN1=.THENZ=.:GOSUB910
  28. 140 PRINT"[147]";:GOSUB340
  29. 145 GOTO75
  30. 150 DATA"SILVER"," IND  ","GRAIN "," OIL  ","GOLD  ","BONDS "
  31. 155 FORI=1TO6:SA(I)=100:READSN$(I):NEXT
  32. 160 DATA"  UP  "," DOWN","  DIV "
  33. 165 FORI=1TO3:READDN$(I):NEXT
  34. 170 DATA"","[150]","[158]","","[149]","[153]"
  35. 175 FORI=1TO6:READC$(I):NEXT
  36. 180 DATA1,10,7,6,9,13
  37. 185 FORI=1TO6:READC(I):NEXT
  38. 190 GOSUB1135
  39. 195 IX=20:ML=1:PRINT"[142]INSTRUCTIONS? (Y/N)";:GOSUB1150
  40. 200 IFWK$="Y"THENGOSUB1265:GOTO210
  41. 205 IFWK$<>"N"THEN190
  42. 210 IX=24:PRINT"HOW MANY PLAYERS? (1-6)  [157]";:GOSUB1150
  43. 215 N2=VAL(WK$)
  44. 220 IFN2<1ORN2>6THEN210
  45. 225 IFN2=1THENN1=.:GOTO245
  46. 230 IX=29:PRINT"MAY YOUR 64 PLAY TOO?  (Y/N)  [157][157]";
  47. 235 GOSUB1150:IFWK$<>"N"ANDWK$<>"Y"THEN230
  48. 240 N1=.:IFWK$="N"THENN1=1
  49. 245 FORI=1TON2
  50. 250 FORJ=1TO6:PS(I,J)=.:NEXT
  51. 255 PA(I)=5000
  52. 260 PRINT"PLAYER    [157][157][157][157]";I;"WHAT IS YOUR NAME?                 ":ML=24
  53. 265 PRINT"                         [145]"
  54. 270 IX=.:GOSUB1150:PN$(I)=WK$
  55. 275 IFLEN(WK$)=.ORLEFT$(WK$,1)=" "THEN260
  56. 280 NEXT
  57. 285 PN$(.)="YOUR 64":PA(.)=2000
  58. 290 FORI=1TO6:PS(.,I)=500:NEXT
  59. 295 GOSUB425
  60. 300 IFN1=.THENI=.:GOSUB545
  61. 305 IFN1THENGOSUB1135
  62. 310 PRINTLEFT$(X$,16)"[158]HOW MANY COMPLETE ROUNDS BEFORE BUYING
  63. 315 [153]"AND SELLING STOCKS (1-3)?   CMDCMDCMD";:IX[178]26:ML[178]1:[141]1150
  64. 320 NR[178][197](WK$)
  65. 325 [139]NR[179]1[176]NR[177]3[167]310
  66. 330 NR[178]NR[172](1[171]N1[170]N2):[153]"LOAD";:[141]340
  67. 335 [142]
  68. 340 [153]"OPEN               BAY STREET               ";
  69. 345 [153]"          FROM  ROGER D. BURGE          "
  70. 350 [129]K[178].[164]19:[153]"CMDSAVESAVE":[151]218,132:[130]:[153]"";
  71. 355 [129]I[178]190[164].[169][171]10
  72. 360 G$[178]"PRINT#":[139]I[178]100[167]G$[178]""
  73. 365 GN$[178]"  "[170][196](I):GN$[178][201](GN$,3):GN$[178]""[170]GN$[170]G$[170]"TAN"
  74. 370 [129]J[178]1[164]6:WK$[178]"TANTAN"
  75. 375 [139]SA(J)[177]I[167]WK$[178]C$(J)[170]"  WAIT"
  76. 380 [139]SA(J)[178]I[167]WK$[178]C$(J)[170]"NEWNEW"
  77. 385 WK$[178]WK$[170]G$[170]"TAN":[139]J[179]6[167]WK$[178]WK$[170]"TANTANTAN"
  78. 390 GN$[178]GN$[170]WK$:[130]
  79. 395 I$[178][201]([196](I),[195]([196](I))[171]1)
  80. 400 [139][195](I$)[179]3[167][129]K[178][195](I$)[164]2:I$[178]I$[170]" ":[130]
  81. 405 [153]GN$""I$;
  82. 410 [130]
  83. 415 [153]"   ";SN$(1);SN$(2);SN$(3);SN$(4);SN$(5);SN$(6)
  84. 420 [142]
  85. 425 [129]I[178]1[164]N2
  86. 430 [141]545
  87. 435 [153]"ONSYSYOU MUST BUY SOME STOCK":BS[178]1
  88. 440 [141]1030
  89. 445 [141]645
  90. 450 [139]SN[178]7[167][153]"SYSINSUFFICIENT FUNDS":[129]K[178].[164]2000:[130]:[141]545:[137]440
  91. 455 [141]475
  92. 460 [139]PA(I)[178]5000[167]430
  93. 465 [130]
  94. 470 [142]
  95. 475 [141]545
  96. 480 BS[178].:IX[178]28:ML[178]1:[153]"ONBUY, SELL OR NOTHING B/S/N?  CMDCMD";:[141]1150
  97. 485 [139]WK$[179][177]"N"[175]WK$[179][177]"S"[175]WK$[179][177]"B"[167][153]:[153]"ONON":[137]480
  98. 490 [139]WK$[178]"B"[167]BS[178]1
  99. 495 [139]WK$[178]"N"[167][142]
  100. 500 SB$[178]WK$:[153]:[153]"ON
  101. 505 GOSUB1030
  102. 510 IFSB$="S"THENGOSUB670
  103. 515 IFSB$="B"THENGOSUB645
  104. 520 IFSN<7THEN475
  105. 525 IFSB$="S"THENPRINT"[158]YOU DON'T OWN ENOUGH STOCK"
  106. 530 IFSB$="B"THENPRINT"[158]YOU DON'T HAVE ENOUGH MONEY"
  107. 535 FORK=1TO2000:NEXT
  108. 540 GOTO475
  109. 545 PRINT"[147][158]               BAY STREET               ";
  110. 550 PRINT"          FROM  ROGER D. BURGE          [146]";
  111. 555 WK$=" PORTFOLIO - "+PN$(I):WK=INT((40-LEN(WK$))/2):FORK=1TOWK:WK$=" "+WK$
  112. 560 NEXT:WK=40-LEN(WK$):FORK=1TOWK:WK$=WK$+" ":NEXT:PRINT"[159]"WK$
  113. 565 PRINT" #  DESC   VALUE   HOLDINGS"
  114. 570 PRINT" [163][160][160][163][163][163][163][160] [160][163][163][163][163][163][160] [160][163][163][163][163][163][163][163][163]"
  115. 575 FORK=1TO6
  116. 580 WK$="  "+STR$(SA(K)):V$=RIGHT$(WK$,3)
  117. 585 WK=PS(I,K):WK$="      "+STR$(WK)
  118. 590 :WK$=RIGHT$(WK$,7)
  119. 595 IFWK<1000THENH$=" "+WK$
  120. 600 IFWK>500THENH$=LEFT$(WK$,4)+","+RIGHT$(WK$,3)
  121. 605 WK$=" "+STR$(K)+" "
  122. 610 PRINTWK$;
  123. 615 IFLEFT$(SN$(K),1)=" "THENPRINTRIGHT$(SN$(K),LEN(SN$(K))-1)" ";:GOTO625
  124. 620 PRINTSN$(K);
  125. 625 PRINT"   ";V$;"   ";H$
  126. 630 NEXT
  127. 635 PRINT:PRINT"CASH ON HAND --- ";PA(I):PRINT
  128. 640 RETURN
  129. 645 WK=SA(SN)*SQ/100:PT=1
  130. 650 IFWK>PA(I)THENSN=7:RETURN
  131. 655 PA(I)=PA(I)-WK
  132. 660 PS(I,SN)=PS(I,SN)+SQ
  133. 665 RETURN
  134. 670 PT=1
  135. 675 IFSQ>PS(I,SN)THENSN=7:RETURN
  136. 680 PA(I)=PA(I)+SA(SN)*SQ/100
  137. 685 PS(I,SN)=PS(I,SN)-SQ
  138. 690 RETURN
  139. 695 SA(D1)=SA(D1)+D3
  140. 700 IFSA(D1)<200THENRETURN
  141. 705 SA(D1)=100
  142. 710 FORI=N1TON2
  143. 715 PS(I,D1)=PS(I,D1)*2
  144. 720 NEXT
  145. 725 RETURN
  146. 730 SA(D1)=SA(D1)-D3
  147. 735 IFSA(D1)>.THENRETURN
  148. 740 SA(D1)=100
  149. 745 FORI=N1TON2
  150. 750 PS(I,D1)=.
  151. 755 NEXT
  152. 760 RETURN
  153. 765 IFSA(D1)<100THENRETURN
  154. 770 FORI=N1TON2
  155. 775 :PA(I)=PA(I)+PS(I,D1)*D3/100
  156. 780 NEXT
  157. 785 RETURN
  158. 790 GOSUB1135:PRINT"PLAYER NAME               CASH VALUE"
  159. 795 PRINT"[163][163][163][163][163][163][163][163][163][163][163]               [163][163][163][163][163][163][163][163][163][163]"
  160. 800 FORK=N1TON2
  161. 805 FORJ=1TO6
  162. 810 ::PA(K)=PA(K)+SA(J)*PS(K,J)/100
  163. 815 NEXT
  164. 820 NEXT
  165. 825 FORK=N1TON2
  166. 830 :WK=-1
  167. 835 FORJ=N1TON2
  168. 840 IFPA(J)>WKTHENWK=PA(J):I=J
  169. 845 :NEXT
  170. 850 WK$="         "+STR$(PA(I))
  171. 855 WK$=RIGHT$(WK$,8):V$=LEFT$(WK$,2)
  172. 860 IFV$<>"  "THENV$=V$+","
  173. 865 IFV$= "  "THENV$=V$+" "
  174. 870 :V$=V$+MID$(WK$,3,3)
  175. 875 IFRIGHT$(V$,1)<>" "THENV$=V$+","
  176. 880 IFRIGHT$(V$,1)=" "THENV$=V$+" "
  177. 885 :V$=V$+RIGHT$(WK$,3)
  178. 890 PRINT"  "PN$(I);TAB(28);V$:PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  179. 895 :PA(I)=-1
  180. 900 NEXT
  181. 905 RETURN
  182. 910 I=.:PT=.:GOSUB545:PRINT"[145]";
  183. 915 FORSN=1TO6:SQ=PS(.,SN)
  184. 920 IFSA(SN)<95ANDSQ>.THENPRINT"SELL";SQ;SN$(SN):Z=Z+1:GOSUB670
  185. 925 IFZ=10THENPRINT"[147]
  186. 930 [130]
  187. 935 [129]K[178]1[164]1500:[130]
  188. 940 [139]PA(.)[179]600[167][141]1005:[142]
  189. 945 WK[178]0:SQ[178]999999
  190. 950 [129]J[178]1[164]6
  191. 955 [139]SA(J)[177]105[175]PS(.,J)[179]SQ[167]WK[178]J:SQ[178]PS(.,J)
  192. 960 [130]
  193. 965 SN[178]WK
  194. 970 [139]WK[178].[167][141]1005:[142]
  195. 975 SQ[178]500:[141]645
  196. 980 [139]SN[178]7[167][141]1005:[142]
  197. 985 [139]Z[178]10[167][153]"LOAD
  198. 990 PRINT"BUY 500 ";SN$(SN):Z=Z+1
  199. 995 FORK=1TO1000:NEXT
  200. 1000 GOTO945
  201. 1005 FORK=1TO300:NEXT
  202. 1010 IFPT=1THENGOSUB545
  203. 1015 IFPT=.THENPRINT:PRINT"NO TRANSACTIONS"
  204. 1020 FORK=1TO2000:NEXT
  205. 1025 RETURN
  206. 1030 PRINT"STOCK#?  [157][157]";
  207. 1035 IX=8:ML=1:GOSUB1150:SN=VAL(WK$)
  208. 1040 IFSN<1ORSN>6THENPRINT:PRINT"[145][145][145]":GOTO1030
  209. 1045 IFBSTHENGOSUB1250
  210. 1050 PRINT:PRINT"QUANTITY? ";
  211. 1055 ML=6:IX=10:GOSUB1150:SQ=VAL(WK$)
  212. 1060 WK=SQ-INT(SQ/500)*500
  213. 1065 IFWKTHENPRINT"[145]       [157][157][157][157][157][157][157]";:GOTO1055
  214. 1070 RETURN
  215. 1075 S1=1024+764+(D1-1)*6:C1=S1+54272
  216. 1080 FORK=.TO190STEP10
  217. 1085 WK=64
  218. 1090 IFSA(D1)>KTHENWK=160
  219. 1095 IFSA(D1)=KTHENWK=98
  220. 1100 POKES1,WK:POKES1+1,WK:IFWK>64THENPOKEC1,C(D1):POKEC1+1,C(D1):GOTO1115
  221. 1105 IFK=100THENPOKEC1,2:POKEC1+1,2:GOTO1115
  222. 1110 POKEC1,12:POKEC1+1,12
  223. 1115 S1=S1-40:C1=C1-40
  224. 1120 NEXT
  225. 1125 FORK=1TO500:NEXT
  226. 1130 RETURN
  227. 1135 PRINT"[147][159]               BAY STREET               ";
  228. 1140 PRINT"          FROM  ROGER D. BURGE          ":RETURN
  229. 1150 WK$="":POKE198,.
  230. 1155 POKE211,IX:POKE204,.
  231. 1160 POKE207,.:GETIT$:IFIT$=""THEN1160
  232. 1165 IT=ASC(IT$):IFIT=13THEN1210
  233. 1170 IFIT=20THEN1190
  234. 1175 IFIT<31ORIT>96THEN1160
  235. 1180 IFLEN(WK$)=MLTHEN1160
  236. 1185 PRINTIT$;:WK$=WK$+IT$:GOTO1160
  237. 1190 IFLEN(WK$)=.THEN1160
  238. 1195 WK$=LEFT$(WK$,LEN(WK$)-1)
  239. 1200 IFPEEK(207)=.THENPRINT"[157]  [157][157]";:GOTO1160
  240. 1205 GOTO1200
  241. 1210 IFPEEK(207)=.THENPOKE204,1:PRINT" ":RETURN
  242. 1215 GOTO1210
  243. 1220 PRINTX$"WOULD YOU LIKE TO PLAY AGAIN? (Y/N)  [157]";:IX=36:GOSUB1150
  244. 1225 IFWK$="Y"THENRUN
  245. 1230 IFWK$="N"THEN1240
  246. 1235 GOTO1220
  247. 1240 POKE53280,3:POKE53281,1:PRINT"[147]"
  248. 1245 END
  249. 1250 PU=INT((PA(I)*100/SA(SN))/500)*500
  250. 1255 PRINT"[158]YOU CAN BUY UP TO"PU"SHARES":PRINT"IN UNITS OF 5OO":RETURN
  251. 1260 RETURN
  252. 1265 POKE53280,.:PRINT"[145][145]":GOSUB1395:PRINT"         WELCOME TO BAY STREET.
  253. 1270 [153]"HEART OF CANADA'S WORLD OF HIGH FINANCE!":[141]1395
  254. 1275 [153]" A GAME FOR 1 TO 6 PEOPLE....":[153]"AND YOUR 64 LIKES TO PLAY TOO.
  255. 1280 PRINT" HE'S THE BANKER AS WELL, BUT DON'T     WORRY, HE NEVER CHEATS.
  256. 1285 [153]" NOTE: IN ONE PLAYER GAMES YOU MUST PLAYAGAINST YOUR 64. IN MULTI-";
  257. 1290 [153]" PLAYER GAMES YOU CHOOSE WHETHER OR NOT TO LET HIM    PLAY.
  258. 1295 PRINT" THE OBJECT OF THE GAME IS TO PLAY THE  STOCK MARKET SUCCESSFULLY.";
  259. 1300 PRINT"  YOU BUY AND SELL STOCKS (IN BLOCKS OF 500 SHARES)   FROM SIX ";
  260. 1305 PRINT"CATEGORIES.":PRINT" THEN WATCH THE STOCKS RISE, FALL AND   PAY ";
  261. 1310 PRINT"DIVIDENDS ON THE TORONTO STOCK      EXCHANGE.
  262. 1315 [153]"PRINT PRESS ANY KEY TO CONTINUE... ":[151]198,.
  263. 1320 [161]A$:[139]A$[178]""[167]1320
  264. 1325 [141]1135:[141]1395
  265. 1330 [153]" IF A STOCK'S VALUE REACHES THE TOP IT  'SPLITS' AND YOU DOUBLE";
  266. 1335 [153]" ANY SHARES YOU  HAVE IN IT.
  267. 1340 PRINT" IF A STOCK'S VALUE DROPS BELOW ZERO    THEN IT 'CRASHES' AND YOU ";
  268. 1345 PRINT"LOSE ANY STOCKYOU HAVE IN IT.
  269. 1350 [153]"DIVIDENDS ARE BASED ON THE MARKET VALUEOF THE STOCK AND HOW MUCH";
  270. 1355 [153]" YOU HAVE.
  271. 1360 PRINT" WHEN BUYING OR SELLING, PRICES ARE     BASED STRICTLY ON MARKET";
  272. 1365 PRINT" VALUE.
  273. 1370 [153]" YOUR 64 WILL HANDLE ALL THE DETAILS.
  274. 1375 PRINT" DON' BE AFRAID TO TAKE CHANCES!
  275. 1380 [153]"PRINT PRESS ANY KEY TO PLAY. ":[151]198,.
  276. 1385 [161]A$:[139]A$[178]""[167]1385                                     
  277. 1390 [151]53280,3:[141]1135:[142]
  278. 1395 [153]"PRINTON----------------------------------------";:[142]
  279.